package com.payment.system.mapper;

import com.payment.system.domain.MerchantWallet;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 用户资金
 * 数据层
 *
 * @author payment
 * @date 2019-11-18
 */
public interface MerchantWalletMapper {
    /**
     * 查询用户资金
     * 信息
     *
     * @param id 用户资金
     *           ID
     * @return 用户资金
     * 信息
     */
    public MerchantWallet selectMerchantWalletById(String id);

    /**
     * 查询用户资金
     * 列表
     *
     * @param merchantWallet 用户资金
     *                       信息
     * @return 用户资金
     * 集合
     */
    public List<MerchantWallet> selectMerchantWalletList(MerchantWallet merchantWallet);

    /**
     * 新增用户资金
     *
     * @param merchantWallet 用户资金
     *                       信息
     * @return 结果
     */
    public int insertMerchantWallet(MerchantWallet merchantWallet);

    /**
     * 修改用户资金
     *
     * @param merchantWallet 用户资金
     *                       信息
     * @return 结果
     */
    public int updateMerchantWallet(MerchantWallet merchantWallet);

    /**
     * 删除用户资金
     *
     * @param id 用户资金
     *           ID
     * @return 结果
     */
    public int deleteMerchantWalletById(String id);

    /**
     * 批量删除用户资金
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteMerchantWalletByIds(String[] ids);
    /**
     * 根据用户id查询账户钱包信息
     *
     * @param merId
     * @return
     */
    MerchantWallet selectMerchantWalletByMerId(@Param("merId") String merId);
    /**
     * 收益增加
     *
     * @param merId  用户id
     * @param txnAmt 收益金额
     */
    int increaseInRevenue(@Param("merId") String merId,@Param("txnAmt") BigDecimal txnAmt);
    
    /**
     * 查询全部
     * @return
     */
	public List<MerchantWallet> selectAll();
	/**
	 * 提现预处理
	 * @param id
	 * @param txnAmt
	 */
	public int withdrawalPretreatment(@Param("merId")String id,@Param("txnAmt") BigDecimal txnAmt);
	/**
	 * 提现成功
	 * @param id
	 * @param txnAmt
	 */
	public int withdrawalSuccess(@Param("merId")String id,@Param("txnAmt") BigDecimal txnAmt);
	/**
	 * 提现失败
	 * @param id
	 * @param txnAmt
	 */
	public int withdrawalFail(@Param("merId")String id,@Param("txnAmt") BigDecimal txnAmt);
	/**
	 * 充值升级增加返现冻结金额
	 * @param merchantId
	 * @param bigDecimal
	 */
	public int increaseVipMoney(@Param("merchantId")String merchantId,@Param("money") BigDecimal money);
	/**
	 * 充值金额释放
	 * @param merchantId
	 * @param releaseMoney
	 * @return
	 */
	public int releaseVipMoney(@Param("merchantId")String merchantId,@Param("releaseMoney") BigDecimal releaseMoney);

	public int increasePartnerMoney(@Param("merchantId")String merchantId,@Param("partnerMoney") BigDecimal partnerMoney);


}